package cn.hyatt.auth.service;

import cn.hyatt.auth.dto.systemDept.SystemDeptFindDto;
import cn.hyatt.auth.dto.systemDept.SystemDeptSaveDto;
import cn.hyatt.auth.dto.systemDept.SystemDeptUpdateDto;
import cn.hyatt.auth.dto.systemDept.SystemDeptVo;
import cn.hyatt.auth.entity.SystemDept;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 系统部门-服务接口
 *
 * @author hyatt
 */
public interface SystemDeptService extends IService<SystemDept> {
    /**
     * 按列表查找
     *
     * @param dto 查找条件对象
     * @return 结果
     */
    List<SystemDept> findByList(SystemDeptFindDto dto);

    /**
     * 按页面查找
     *
     * @param dto 查找条件对象
     * @return 结果
     */
    IPage<SystemDept> findByPage(SystemDeptFindDto dto);

    /**
     * 保存
     *
     * @param dto 保存数据对象
     */
    void save(SystemDeptSaveDto dto);

    /**
     * 更新
     *
     * @param id  ID
     * @param dto 更新数据对象
     */
    void update(Long id, SystemDeptUpdateDto dto);

    /**
     * 按 Id 删除
     *
     * @param id ID
     */
    void deleteById(Long id);

    /**
     * 转 Vo 对象
     *
     * @param entity 实体对象
     * @return 结果
     */
    SystemDeptVo toVo(SystemDept entity);
}
